package com.crcode.crm.dao.role;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import com.crcode.crm.bean.role.RoleUserBean;

public interface RoleUserDao extends JpaRepository<RoleUserBean, Integer>, JpaSpecificationExecutor<RoleUserBean> {
	
	/**
	 * 根据角色序号得到用户序号集合
	 * @author lxw
	 * @date 2018年9月12日 下午2:55:55
	 * @param roleId
	 * @return
	 */
	@Query("select ru.userUuid from RoleUserBean ru where ru.roleUuid =?1")
	public List<String> getUserUuidsByRoleUuid(String roleUuid);
	
	
	/**
	 * 根据角色序号删除
	 * @author lxw
	 * @date 2018年9月18日 下午2:32:02
	 * @param roleId
	 * @return
	 */
	public long deleteByRoleUuid(String roleUuid);
	
	/**
	 * 根据角色序号批量删除
	 * @author lxw
	 * @date 2018年9月18日 下午3:19:14
	 * @param roleIds
	 * @return
	 */
	public long deleteByRoleUuidIn(List<String> roleUuids);
	/**
	 * 根据用户序号删除
	 * @author lxw
	 * @date 2018年9月18日 下午2:32:56
	 * @param userId
	 * @return
	 */
	public long deleteByUserUuid(String userUuid);
	
	/**
	 * 根据用户序号批量删除
	 * @author lxw
	 * @date 2018年9月18日 下午3:19:54
	 * @param userIds
	 * @return
	 */
	public long deleteByUserUuidIn(List<String> userUuids);
	
	/**
	 * 根据角色序号查询 返回角色序号集合
	 * @author lxw
	 * @date 2018年9月18日 上午10:39:51
	 * @param userId
	 * @return
	 */
	@Query("select ru.roleUuid from RoleUserBean ru where ru.userUuid =?1")
	public List<String> getRoleUuidsByUserUuid(String userUuid);
	
	/**
	 * 根据角色序号和用户序号查询
	 * @author lxw
	 * @date 2019年4月28日
	 * @param roleUuid
	 * @param userUuid
	 * @return
	 */
	public List<RoleUserBean> findByRoleUuidAndUserUuid(String roleUuid,String userUuid);
	
}
